
/**  
* Map的构造函数  
*/  
function Map(){   
    this.container = new Object();   
}   
  
/**  
* 添加一个键-值  
*/  
Map.prototype.put = function(key, value){   
    this.container[key] = value;   
}   
  
/**  
* 通过键获取一个值  
*/  
Map.prototype.get = function(key){   
    return this.container[key];   
}   
  
/**  
* 返回该Map对象的键集合  
*/  
Map.prototype.keySet = function() {   
    var keyset = new Array();   
    var count = 0;   
    for (var key in this.container) {   
        // 跳过object的extend函数   
        if (key == 'extend') {   
            continue;   
        }
        keyset[count] = key;   
        count++;   
    }   
    return keyset;   
}   
  
/**  
* 返回该Map对象的大小  
*/  
Map.prototype.size = function() {   
    var count = 0;   
    for (var key in this.container) {   
        // 跳过object的extend函数   
        if (key == 'extend'){   
        continue;   
        }
        count++;   
    }   
    return count;   
}
  
/**  
* 删除Map对象  
*/  
Map.prototype.remove = function(key) {
delete this.container[key];
}

/**  
* 返回该Map对象的字符串形式  
*/  
Map.prototype.toString = function(){   
    var str = "";   
    for (var i = 0, keys = this.keySet(), len = keys.length; i < len; i++) {   
        str = str + keys[i] + "=" + this.container[keys[i]] + ";\n";   
    }   
    return str;   
} 